package com.open.base.mapper;

import com.open.base.model.GeneralConfig;
import com.open.base.model.vo.SysConfigVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 用户配置 Mapper
 *
 * @author ：大树03
 * @date 2025-03-31 21:00
 */

public interface GeneralConfigMapper {

	/**
	 * 添加对象
	 * @param model
	 * @return boolean
	 * @date 2025-03-31 21:00
	 */
	Boolean save(GeneralConfig model) ;

	/**
	 * 修改对象
	 * @param model
	 * @return boolean
	 * @date 2025-03-31 21:00
	 */
	Boolean update(GeneralConfig model) ;

	/**
	 * 根据主键查询
	 * @param pk
	 * @return  UserConfig
	 * @date 2025-03-31 21:00
	 */
	GeneralConfig findByPk(Long pk);

	/**
	 * 分页查询
	 *
	 * @param map
	 * @return
	 */
	List<SysConfigVo> findPage(Map<String, Object> map) ;

	/**
	 * 根据条件查询记录数
	 *
	 * @param map
	 * @return Integer
	 */
	Integer findPageCount(Map<String, Object> map) ;

	/**
	 * 根据条件查询
	 *
	 * @param map
	 * @return
	 */
	List<GeneralConfig> findByModel(Map<String, Object> map);

	/**
	 * 根据主键删除
	 * @param pk
	 * @return int
	 * @date 2025-03-31 21:00
	 */
	int remove(Long pk);

	/**
	 * 根据用户id和类型查询
	 * @param userId
	 * @param type
	 * @return
	 */
	GeneralConfig findConfig(@Param("userId") Long userId, @Param("type") String type);

	String getSystemConfig(@Param("type")String type);

	List<Map<String, Object>> getSystemConfigs(@Param("types")List<String> types);

	Boolean batchUpdate(@Param("models") List<GeneralConfig> models);
}